package com.ayu.a.practice01;

import java.util.Arrays;

/**
 * @Author 徐林玉
 * @Description PlusOnePrac
 * @Date 2022/11/9 9:19
 * @Version 1.0
 */
public class PlusOnePrac {

    public static void main(String[] args) {


        int[] arr = new int[]{8,9,9};

        int[] ints = plusOne(arr);

        for (int i = 0; i < ints.length; i++) {

            System.out.print(ints[i]+"  ");
        }

    }


    public static int[] plusOne(int[] arr) {

        int length = arr.length-1;

        while (length > 0) {

            if (arr[length] != 9) {

                arr[length] = arr[length] + 1;

                break;
            } else {

                arr[length] = 0;
            }

            length--;

        }

        if (length == 0) {

            if (arr[length] != 9) {

                arr[0] = arr[0] + 1;
            }else{



                int[] arr2 = new int[arr.length + 1];

                arr2[0] = 1;

                arr = arr2;
            }
        }

        return arr;
    }

    public static int[] plusOne2(int[] digits) {
        int length = digits.length;
        for (int i = length - 1; i >= 0; i--) {
            if (digits[i] != 9) {
                //如果数组当前元素不等于9，直接加1
                //然后直接返回
                digits[i]++;
                return digits;
            } else {
                //如果数组当前元素等于9，那么加1之后
                //肯定会变为0，我们先让他变为0
                digits[i] = 0;
            }
        }
        //除非数组中的元素都是9，否则不会走到这一步，
        //如果数组的元素都是9，我们只需要把数组的长度
        //增加1，并且把数组的第一个元素置为1即可
        int temp[] = new int[length + 1];
        temp[0] = 1;
        return temp;
    }


}
